1. Field of the Invention
The present invention pertains generally to the field of speech processing, and more specifically to a method and apparatus for eighth-rate random number generation for speech coders.
2. Background
Transmission of voice by digital techniques has become widespread, particularly in long distance and digital radio telephone applications. This, in turn, has created interest in determining the least amount of information that can be sent over a channel while maintaining the perceived quality of the reconstructed speech. If speech is transmitted by simply sampling and digitizing, a data rate on the order of sixty-four kilobits per second (kbps) is required to achieve a speech quality of conventional analog telephone. However, through the use of speech analysis, followed by the appropriate coding, transmission, and resynthesis at the receiver, a significant reduction in the data rate can be achieved.
Devices that employ techniques to compress speech by extracting parameters that relate to a model of human speech generation are called speech coders. A speech coder divides the incoming speech signal into blocks of time, or analysis frames. Speech coders typically comprise an encoder and a decoder, or a codec. The encoder analyzes the incoming speech frame to extract certain relevant parameters, and then quantizes the parameters into binary representation, i.e., to a set of bits or a binary data packet. The data packets are transmitted over the communication channel to a receiver and a decoder. The decoder processes the data packets, unquantizes them to produce the parameters, and then resynthesizes the speech frames using the unquantized parameters.
The function of the speech coder is to compress the digitized speech signal into a low-bit-rate signal by removing all of the natural redundancies inherent in speech. The digital compression is achieved by representing the input speech frame with a set of parameters and employing quantization to represent the parameters with a set of bits. If the input speech frame has a number of bits N.sub.i and the data packet produced by the speech coder has a number of bits N.sub.o, the compression factor achieved by the speech coder is C.sub.r =N.sub.i /N.sub.o. The challenge is to retain high voice quality of the decoded speech while achieving the target compression factor. The performance of a speech coder depends on (1) how well the speech model, or the combination of the analysis and synthesis process described above, performs, and (2) how well the parameter quantization process is performed at the target bit rate of N.sub.o bits per frame. The goal of the speech model is thus to capture the essence of the speech signal, or the target voice quality, with a small set of parameters for each frame.
A well-known speech coder is the Code Excited Linear Predictive (CELP) coder described in L. B. Rabiner & R. W. Schafer, Digital Processing of Speech Signals 396-453 (1978), which is fully incorporated herein by reference. In a CELP coder, the short term correlations, or redundancies, in the speech signal are removed by a linear prediction (LP) analysis, which finds the coefficients of a short-term formant filter. Applying the short-term prediction filter to the incoming speech frame generates an LP residue signal, which is further modeled and quantized with long-term prediction filter parameters and a subsequent stochastic codebook. Thus, CELP coding divides the task of encoding the time-domain speech waveform into the separate tasks of encoding of the LP short-term filter coefficients and encoding the LP residue. An exemplary variable rate CELP coder is described in U.S. Pat. No. 5,414,796, which is assigned to the assignee of the present invention and fully incorporated herein by reference.
In conventional speech coders, nonspeech or silence is often encoded at eighth rate (as opposed to full rate, half rate, or quarter rate in a variable rate speech coder) instead of simply not being encoded. To encode the silence at eighth rate, the energy of the current speech frame is measured, quantized, and transmitted to the decoder. A comfort noise (to the listener) with equivalent energy is then reproduced in the decoder side. The noise is usually modeled as white Gaussian noise. There are several methods to generate Gaussian random noise in a digital signal processor (DSP), including, e.g., using the central limit theorem with two statistically independent, identically distributed random variables with uniform probability distribution. However, intensive computation must be performed, including nonlinear, mathematical operations or transformations such as calculating the square roots of the random variables, the cosine and sine transformations, logarithmic functions, etc. Such operations require high memory capacity and are extremely computation-intensive. For example, computing the sine and cosine of a function requires calculating a Taylor series expansion of the function. Thus, there is a need for an encoding and decoding method that reduces memory needs and computational requirements.